import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
import app from './modules/app'
import settings from './modules/settings'
import user from './modules/user'

Vue.use(Vuex)//给vue原型上添加$store属性

const store = new Vuex.Store({//new一个唯一的store仓库对象
  /**
   * state:{
   * 属性名：初始值
   * }
   * mutations:{
   * 唯一修改state变量的地方（同步）
   * }
   * actions：{
   * 放的的是异步代码，然后提交给mutations来影响state（异步）
   * }
   * getters：{
   * 依赖state的值，定义计算属性并返回值使用
   * }
   * modules：{
   * 分模块（每个模块对象里面还有这5个核心概念，分散管理）
   * }
   */
  modules: {
    //模块名：模块对象
    //app：app   简写形式
    app,
    settings,
    user
  },
  getters
})

export default store
